package com.leetcode.August;

/**
 * @Description: 33. 搜索旋转排序数组
 * @Author: Mr.Fxy
 * @CreateTime: 2024-08-10 23:15
 */
public class LC33搜索旋转排序数组 {
//    public int search(int[] nums, int target) {
//        int n = nums.length;
//        if (nums.length == 1) return nums[0];
//        int i = 0;
//        while (i < n) {
//            int m = (i + n) / 2;
//            if (nums[m] == target) {
//                return m;
//            } else if (nums[m] < target) {
//                i = m + 1;
//            } else {
//                i = m - 1;
//            }
//        }
//        return i;
//    }
    public int search(int[] nums, int target) {
        if (nums.length == 0) return -1;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == target)return i;
        }
        return -1;
    }
}
/**
 * int left = 0, right = nums.length - 1;
 *
 *         while (left <= right) {
 *             int mid = left + (right - left) / 2;
 *
 *             if (nums[mid] == target) {
 *                 return mid;
 *             }
 *
 *             // 如果左半部分是有序的
 *             if (nums[left] <= nums[mid]) {
 *                 if (target >= nums[left] && target < nums[mid]) { // 目标值在左半部分
 *                     right = mid - 1;
 *                 } else { // 目标值在右半部分
 *                     left = mid + 1;
 *                 }
 *             }
 *             // 如果右半部分是有序的
 *             else {
 *                 if (target > nums[mid] && target <= nums[right]) { // 目标值在右半部分
 *                     left = mid + 1;
 *                 } else { // 目标值在左半部分
 *                     right = mid - 1;
 *                 }
 *             }
 *         }
 *
 *         return -1; // 没有找到目标值
* */

